In recent years, the networking of computers has become increasingly common. For example, Automated Teller Machines, or ATMs, represent one type of commonly used computer network. Computer networks are also used to schedule air travel reservations and to link computers within offices and factories. Recently, with the rise of the World Wide Web, computer networking has gained an acceptance and notoriety which would have been difficult to imagine, even in the recent past.
As computer networks grow in size and complexity there has been increased used of a networking model known as "distributed object computing." Distributed object computing is a methodology that allows the resources and services within a computer network to be manipulated as objects. Software processes access resources and services by performing object calls using the objects associated with the resources and services. Effectively, distributed object computing extends the realm of object oriented programming to the resources and services included within computer networks.
Part of the appeal of distributed object computing is that a software process is able to manipulate objects without regard to the location of the objects. Thus, a process may manipulate objects that exist on the process'local system as well as objects that exist on remote computer systems. In traditional networking systems, however, the ability to manipulate both local and remote objects is obtained at some loss in efficiency. More specifically, in most traditional networking systems, the fact that data is being sent by a system to itself is not detected until after a substantial amount of processing has been performed. As a result, when a process manipulates a local object, the networking protocol will still perform a substantial amount of work before detecting that the object is actually local. Thus, a need exists for networking systems that can detect at an early time the fact that data is local, i.e., that data is being sent by a computer to itself. This need is present in computer networks in general and particularly relevant to distributed object computing systems.
Another area in which current distributed object systems are inadequate relates to the way in which objects on remote systems are addressed by processes on local systems. It is generally the case that an object located on a remote system will be addressed using network-dependent information such as the IP address of the system where the object is located. This approach fails, however, when the network technology or topology is changed and the object is no longer located at the same point in the network. Currently, changes in network technology and topology are accommodated by changing all references to objects to include the object's new address. Where large numbers of objects are involved, however, this may be impractical. Thus, a need exists for networking systems that provide a network-independent addressing scheme for data and objects. This need is particularly relevant to distributed object computing systems.